home *** CD-ROM | disk | FTP | other *** search
- 80 ;RD TRK 8
- 95 ;CONVERT 5 BYTES GCR TO 4 BYTES HEX
- 96 ;FOR EXAMPLE WE'LL USE #$'S 52 56 E5 29 6B
- 100 GCR LDA #$00;SET ZERO PAGE INDEX ADDRESSES
- 110 STA Z1
- 120 STA Z4
- 130 STA Z3
- 140 LDA #>GCR1
- 150 STA Z2
- 160 L1 JSR AA
- 170 STY Z4
- 180 CPY #$CC; 1ST 204 BYTES
- 190 BNE L1
- 260 LDA #$00
- 270 STA Z1
- 280 STA Z4
- 290 STA Z3
- 300 LDY #$FF
- 310 LDX #$00
- 320 TR LDA GCR1,Y; MOVE LAST 102 BYTES TO CONVERT
- 330 STA GCR1,X
- 335 LDA #>GCR1:CLC:ADC #$01:STA TR+2
- 340 INY:INX
- 350 BNE TR
- 355 LDA #$CC
- 360 STA R1+1:STA R2+1:STA R3+1:STA R4+1
- 370 L2 JSR AA
- 375 STY Z4
- 380 CPY #$CC
- 385 BNE L2
- 390 LDA #$00
- 400 STA R1+1:STA R2+1:STA R3+1:STA R4+1
- 405 LDA #>GCR1:STA TR+2
- 410 WRK RTS
- 440 AA LDY Z3;= EQUALS ZERO
- 445 ;(Z1),Y POINTS TO $7D00,Y
- 450 LDA (Z1),Y; #$52 01010010
- 460 AND #$F8; 11111000
- 462 ;RESULT---------------------------------------01010000
- 470 LSR; 00101000
- 471 LSR; 00010100
- 472 LSR; 00001010 = #$0A
- 480 STA GCR3;$7A00
- 490 LDA (Z1),Y; #$52 01010010
- 500 AND #$07; 00000111
- 501 ;RESULT---------------------------------------00000010
- 510 ASL; 00000100
- 511 ASL; 00001000 = #$08
- 520 STA GCR3+1;$7A01
- 530 INY
- 540 LDA (Z1),Y; #$56 01010110
- 550 AND #$C0; 11000000
- 551 ;RESULT---------------------------------------01000000
- 555 ; CARRY FLAG NOT CLEARED A 1 WILL BE CARRIED
- 560 ROL; 10000000
- 561 ROL; 00000000
- 562 ROL; 00000001
- 570 ORA GCR3+1; #$08 00001000
- 575 ;RESULT---------------------------------------00001001 = #$09
- 580 STA GCR3+1
- 590 LDA (Z1),Y; #$56 01010110
- 600 AND #$3E; 00111110
- 601 ;RESULT---------------------------------------00010110
- 610 LSR; 00001011 = #$0B
- 620 STA GCR3+2;$7A02
- 630 LDA (Z1),Y; #$56 01010110
- 640 AND #$01; 00000001
- 645 ;RESULT---------------------------------------00000000
- 650 ASL; 00000000
- 651 ASL; 00000000
- 652 ASL; 00000000
- 653 ASL; 00000000 = #$00
- 660 STA GCR3+3;$7A03
- 670 INY
- 680 LDA (Z1),Y; #$E5 11100101
- 690 AND #$F0; 11110000
- 695 ;RESULT---------------------------------------11100000
- 700 LSR; 01110000
- 701 LSR; 00111000
- 702 LSR; 00011100
- 703 LSR; 00001110 = #$0E
- 710 ORA GCR3+3; 00000000
- 715 ;RESULT---------------------------------------00001110 = #$0E
- 720 STA GCR3+3;$7A03
- 730 LDA (Z1),Y; #$E5 11100101
- 740 AND #$0F; 00001111
- 745 ;RESULT---------------------------------------00000101
- 750 ASL; 00001010 = #$0A
- 760 STA GCR3+4;$7A04
- 770 INY
- 780 LDA (Z1),Y; #$29 00101001
- 790 AND #$80; 10000000
- 795 ;RESULT---------------------------------------00000000
- 800 CLC
- 810 ROL; 00000000
- 811 ROL; 00000000
- 820 ORA GCR3+4; #$0A 00001010
- 825 ;RESULT---------------------------------------00001010 = #$0A
- 830 STA GCR3+4;$7A04
- 840 LDA (Z1),Y; #$29 00101001
- 850 AND #$7C; 01111100
- 855 ;RESULT---------------------------------------00101000
- 860 LSR; 00010100
- 861 LSR; 00001010 = #$0A
- 870 STA GCR3+5;$70A5
- 880 LDA (Z1),Y; #$29 00101001
- 890 AND #03; 00000011
- 895 ;RESULT---------------------------------------00000001
- 900 ASL; 00000010
- 901 ASL; 00000100
- 902 ASL; 00001000 = #$08
- 910 STA GCR3+6;$7A06
- 920 INY
- 930 LDA (Z1),Y; #$6B 01101011
- 940 AND #$E0; 11100000
- 945 ;RESULT---------------------------------------01100000
- 950 ROL; 11000000
- 951 ROL; 10000000
- 952 ROL; 00000001
- 953 ROL; 00000011
- 960 ORA GCR3+6; #$08 00001000
- 965 ;RESULT---------------------------------------00001011 = #$0B
- 970 STA GCR3+6;$7A06
- 980 LDA (Z1),Y; #$6B 01101011
- 990 AND #$1F; 00011111
- 995 ;RESULT---------------------------------------00001011 = #$0B
- 1000 STA GCR3+7;$7A07
- 1010 INY
- 1020 STY Z3
- 1030 LDY Z4
- 1040 LDX GCR3; #$0A
- 1050 LDA GCR4,X; #$00 00000000
- 1060 LDX GCR3+1; #$09
- 1070 ORA GCR5,X; #$08 00001000
- 1075 ;RESULT-------------------------------------00001000 = #$08 HEADER ID
- 1080 R1 STA HEX,Y
- 1090 INY
- 1100 LDX GCR3+2; #$0B
- 1110 LDA GCR4,X; #$10 00010000
- 1120 LDX GCR3+3; #$0E
- 1130 ORA GCR5,X; 00000100
- 1135 ;RESULT-------------------------------------00010100 = #$14 CHECKSUM
- 1140 R2 STA HEX,Y
- 1150 INY
- 1160 LDX GCR3+4; #$0A
- 1170 LDA GCR4,X; #$00 00000000
- 1180 LDX GCR3+5; #$0A
- 1190 ORA GCR5,X; 00000000
- 1195 ;RESULT-------------------------------------00000000 = #$00 SECTOR
- 1200 R3 STA HEX,Y
- 1210 INY
- 1220 LDX GCR3+6; #$0A
- 1230 LDA GCR4,X; #$10 00010000
- 1240 LDX GCR3+7; #$0B
- 1250 ORA GCR5,X; 00000001
- 1255 ;RESULT-------------------------------------00010001 = #$11 TRACK
- 1260 R4 STA HEX,Y
- 1270 INY
- 1280 STY Z4
- 1340 RTS
- 1350 .FILE RD TRK 9
-